package com.alfred.mall.miaosha.api;

import com.alfred.mall.miaosha.api.bo.MiaoshaGoodsBO;
import com.alfred.mall.miaosha.api.dto.MiaoshaOrderRequestDTO;
import com.alfred.mall.miaosha.api.dto.MiaoshaRequestDTO;
import com.alfred.mall.miaosha.api.dto.MiaoshaResultRequestDTO;

import javax.validation.constraints.NotNull;
import java.util.List;

public interface MiaoshaGoodsServcie {
    /**
     * 查询所有秒杀商品
     *
     * @return
     */
    List<MiaoshaGoodsBO> selectAllMiaoshaGoods();

    /**
     * 根据商品id查询秒杀商品详情
     *
     * @param goodsId
     * @return
     */
    MiaoshaGoodsBO selectMiaoshaGoodsById(@NotNull(message = "秒杀商品id不能为空") Integer goodsId);

    /**
     * 秒杀
     *
     * @param miaoshaRequestDTO
     */
    void seckill(MiaoshaRequestDTO miaoshaRequestDTO);

    /**
     * 秒杀下单查询token
     *
     * @param resultRequestDTO
     * @return
     */
    String queryToken(MiaoshaResultRequestDTO resultRequestDTO);

    /**
     * 秒杀下单入库
     * @param orderRequestDTO
     * @return
     */
    Long order(MiaoshaOrderRequestDTO orderRequestDTO);

}
